
#include <cstdarg>

/**
 * @brief class description
 * 
 */
class CDemuxer
{

public:
    /**
     * @brief demuxer msg 
     * 
     * @return int 
     */
    //int Demux( demux_t *p_demux )
    virtual int start_demuxer( ) = 0;

    /**
     * @brief control demuxer
     * 
     */
    //static int Control( demux_t *p_demux, int i_query, va_list args );
    virtual int control( int i_query, std::va_list args ) = 0;

protected:
    /**
     * @brief derived class called
     */
    int es_send();

};

//加载插件
//

class CDemuxerBuilder
{
public:
    static int create();
};